Andrea Corallo [Fri, 15 May 2020 10:43:31 +0000 (11:43 +0100)]
* Do not refuse to compile if a dynamic lambda is encountered
* lisp/emacs-lisp/comp.el (comp-lex-byte-func-p): New subst.
(comp-intern-func-in-ctxt): Do not crash if we still encounter a
non lexical scoped lambda.
Andrea Corallo [Thu, 14 May 2020 08:11:55 +0000 (09:11 +0100)]
* Allow for logging async compilation command line
* lisp/emacs-lisp/comp.el (comp-run-async-workers): When non zero
verbose log async compilation command line invocation.
Andrea Corallo [Wed, 13 May 2020 21:43:48 +0000 (22:43 +0100)]
* Add check_comp_unit_relocs
* src/comp.c (check_comp_unit_relocs): Add function to verify
relocation coherency.
(load_comp_unit): Call it.
Andrea Corallo [Wed, 13 May 2020 07:52:47 +0000 (08:52 +0100)]
Sanity check on lambdas fixups
* src/pdumper.c (dump_do_dump_relocation): While fixing up lambda
relocation verify placeholder coherency.
* src/comp.c (syms_of_comp): Define symbol 'lambda-fixup'.
* lisp/emacs-lisp/comp.el (comp-finalize-container): Leave a
lambda-fixup as placeholder in the relocation as a sanity check.
Andrea Corallo [Mon, 11 May 2020 18:21:01 +0000 (19:21 +0100)]
* Fix speed 2 bootstrap
(comp-call-optim-func): Do nothing if the function name is
unknown.
Andrea Corallo [Mon, 11 May 2020 16:29:43 +0000 (17:29 +0100)]
* Native compiler test update
* test/src/comp-tests.el (comp-tests-lambda-return): Add a test
verifying that the returned lambda is actually native compiled.
Andrea Corallo [Sun, 10 May 2020 15:04:48 +0000 (16:04 +0100)]
* Better Vcomp_sym_subr_c_name_h test function + doc
* src/comp.c (syms_of_comp): 'Vcomp_sym_subr_c_name_h' need only
'eq' as test + fix doc for 'comp-sym-subr-c-name-h'.
Andrea Corallo [Sat, 2 May 2020 16:29:11 +0000 (17:29 +0100)]
Add anonymous lambdas reload mechanism
* src/pdumper.c (dump_do_dump_relocation): Initialize
'lambda_gc_guard' while resurrecting.
(dump_do_dump_relocation): Revive lambdas and fixup them.
* src/comp.h (struct Lisp_Native_Comp_Unit): Define new
'lambda_gc_guard' 'lambda_c_name_idx_h' 'data_imp_relocs'
'loaded_once' fields.
* src/comp.c (load_comp_unit): Use compilaiton unit 'loaded_once'
field.
(make_subr, Fcomp__register_lambda): New functions.
(Fcomp__register_subr): Make use of 'make_subr'.
(Fnative_elisp_load): Indent.
(Fnative_elisp_load): Initialize 'lambda_gc_guard'
'lambda_c_name_idx_h' fields.
(syms_of_comp): Add Scomp__register_lambda.
* lisp/emacs-lisp/comp.el (comp-ctxt): Change
'byte-func-to-func-h' hash key test.
(comp-ctxt): Add 'lambda-fixups-h' slot.
(comp-emit-lambda-for-top-level): New function.
(comp-finalize-relocs): Never emit lambdas in pure space.
(comp-finalize-relocs): Fixup relocation indexes.
Andrea Corallo [Sun, 3 May 2020 19:55:23 +0000 (20:55 +0100)]
* Render all immediates as comments at comp-debug > 2
* src/comp.c (emit_mvar_rval): No reason to emit only fixnums.
Andrea Corallo [Sun, 3 May 2020 19:34:03 +0000 (20:34 +0100)]
* Dump log and intemediate GCC IRs only at comp-debug 3
* src/comp.c (Fcomp__init_ctxt): Increase threshold for dumping
really everything to 'comp-debug' 3.
Andrea Corallo [Sun, 3 May 2020 19:26:35 +0000 (20:26 +0100)]
* Prune now unnecessary byte-code objects
* lisp/emacs-lisp/comp.el (comp-finalize-container): Prune
byte-code that was lambdas.
(comp-compile-ctxt-to-file): Remove fixme.
Andrea Corallo [Sun, 3 May 2020 14:11:07 +0000 (15:11 +0100)]
* Rework comp-spill-lap-function
* lisp/emacs-lisp/comp.el (comp-spill-lap-function): Move code
from to comp-intern-func-in-ctxt.
(comp-intern-func-in-ctxt): New function, this guard
in case byte-to-native-lambda-byte-func is nil.
Andrea Corallo [Sat, 2 May 2020 19:33:42 +0000 (20:33 +0100)]
* Split emit_const_lisp_obj logic
* src/comp.c (emit_lisp_obj_reloc_lval): New function.
(emit_const_lisp_obj): Rename into 'emit_lisp_obj_rval' and strip
logic for 'emit_lisp_obj_reloc_lval'.
(emit_NILP, emit_CHECK_CONS, emit_mvar_rval, emit_set_internal)
(define_CAR_CDR, define_bool_to_lisp_obj): Update for
'emit_const_lisp_obj' being renamed.
Andrea Corallo [Sat, 2 May 2020 19:14:13 +0000 (20:14 +0100)]
* Rename emit_mvar_access -> emit_mvar_lval
* src/comp.c (emit_mvar_access): Rename into 'emit_mvar_lval'.
(emit_mvar_rval, emit_frame_assignment): Update for
'emit_mvar_access' rename.
Andrea Corallo [Sat, 2 May 2020 19:12:41 +0000 (20:12 +0100)]
* Rename emit_mvar_val -> emit_mvar_rval
* src/comp.c (emit_mvar_val): Rename into 'emit_mvar_rval'.
(emit_set_internal, emit_simple_limple_call, emit_limple_insn)
(emit_call_with_type_hint, emit_call2_with_type_hint)
(emit_consp, emit_numperp, emit_integerp): Update for
'emit_mvar_val' rename.
Andrea Corallo [Mon, 11 May 2020 20:17:29 +0000 (21:17 +0100)]
* Indentation fix
* src/comp.c (Fcomp__init_ctxt, Fcomp__release_ctxt)
(Fcomp__compile_ctxt_to_file, Fcomp__register_subr): Indentation
fix.
Andrea Corallo [Fri, 1 May 2020 16:32:39 +0000 (17:32 +0100)]
Update spill LAP machinery and compile anonymous lambdas
* lisp/emacs-lisp/comp.el (comp-spill-lap-function): Make use of
byte-to-native-lambdas-h and update for 'byte-to-native-func-def'.
(comp-spill-lap-function): Rework logic to retrive LAP using
'byte-to-native-lambdas-h'.
(comp-emit-for-top-level): Update for 'byte-to-native-function'.
* lisp/emacs-lisp/bytecomp.el: Add commentary on new spill LAP
mechanism.
(byte-to-native-lambda, byte-to-native-func-def): New structures.
(byte-to-native-top-level): Indent.
(byte-to-native-lambdas-h): Update doc.
(byte-compile-lapcode): Add a 'byte-to-native-lambda' instance
into byte-to-native-lambdas-h instead of just LAP.
(byte-compile-file-form-defmumble): Store into
'byte-to-native-func-def' only the byte compiled function, the LAP
will be retrived through 'byte-to-native-lambdas-h'.
(byte-compile-lambda): Return the byte compiled function.
Andrea Corallo [Wed, 13 May 2020 18:48:57 +0000 (19:48 +0100)]
* test/src/comp-tests.el (comp-tests-bootstrap): Fix test.
Andrea Corallo [Thu, 14 May 2020 06:14:23 +0000 (07:14 +0100)]
Merge remote-tracking branch 'savannah/master' into HEAD
Stefan Kangas [Wed, 13 May 2020 23:28:03 +0000 (01:28 +0200)]
; Fix warning after last change in cal-julian.el
* lisp/calendar/cal-julian.el (diary-julian-date)
(diary-astro-day-number): Silence byte-compiler warning about variable
'declared after its first use'.
Michael Albinus [Wed, 13 May 2020 12:11:18 +0000 (14:11 +0200)]
Fix some oddities, uncovered by Tramp tests
* lisp/net/tramp-gvfs.el (tramp-gvfs-enabled): Prevent crash for
older Emacsen.
* lisp/net/tramp.el (tramp-process-running-p): Simplify.
* test/lisp/net/tramp-tests.el (tramp-test28-process-file): Adapt test.
(tramp-test33-environment-variables): Unset "INSIDE_EMACS" initially.
João Távora [Wed, 13 May 2020 10:31:21 +0000 (11:31 +0100)]
Turn Eldoc, Xref and Project into GNU ELPA :core packages
The new packages state they require Emacs 26.3 to function, but a
small part of project.el breaks this "soft" rule: the two functions
requiring fileloop.el are incompatible with Emacs 26.3.
* lisp/jsonrpc.el: Tweak comment near Package-Requires.
* lisp/emacs-lisp/eldoc.el: Add Version and Package-Requires.
* lisp/progmodes/flymake.el: Add comment near Package-Requires.
* lisp/progmodes/project.el: Add Version and Package-Requires.
* lisp/progmodes/xref.el: Add Version and Package-Requires.
Stefan Kangas [Wed, 13 May 2020 10:13:52 +0000 (12:13 +0200)]
Use lexical-binding in t-mouse.el
* lisp/t-mouse.el: Use lexical-binding.
Basil L. Contovounesios [Wed, 13 May 2020 01:12:33 +0000 (02:12 +0100)]
; Fix warning in last change
* lisp/play/animate.el (animate-place-char): Silence 'unused lexical
variable' warning.
Stefan Kangas [Wed, 13 May 2020 00:06:03 +0000 (02:06 +0200)]
Use lexical-binding in animate.el and add tests
* lisp/play/animate.el: Use lexical-binding.
* test/lisp/play/animate-tests.el: New file.
Stefan Kangas [Tue, 12 May 2020 23:48:55 +0000 (01:48 +0200)]
Use lexical-binding in dissociate.el and add tests
* lisp/play/dissociate.el: Use lexical-binding.
* test/lisp/play/dissociate-tests.el: New file.
Stefan Kangas [Tue, 12 May 2020 23:30:51 +0000 (01:30 +0200)]
Use lexical-binding in cal-julian.el and add tests
* lisp/calendar/cal-julian.el: Use lexical-binding.
* test/lisp/calendar/cal-julian-tests.el: New file.
Paul Eggert [Tue, 12 May 2020 22:19:46 +0000 (15:19 -0700)]
Use proper digraphs in Bahá’í month names
* lisp/calendar/cal-bahai.el (calendar-bahai-month-name-array):
There doesn’t seem to be any disagreement in the sources I
consulted that “Mas͟híyyat” and “S͟haraf” both need an “s͟h” digraph
instead of plain “sh”.
Stefan Monnier [Tue, 12 May 2020 20:51:55 +0000 (16:51 -0400)]
* lisp/emacs-lisp/syntax.el: Fix bug#41195
Allow use of `syntax-ppss-flush-cache` in `syntax-propertize-function`.
(syntax-propertize--inhibit-flush): New var.
(syntax-propertize): Bind it.
(syntax-ppss-flush-cache): Test it.
Michael Heerdegen [Fri, 8 May 2020 01:49:24 +0000 (03:49 +0200)]
Revert "Inhibit modification hooks when saving eieio-persistent's"
This reverts commit
c59e878439833d89998e03134ee9060f9c449fd9.
Stefan Kangas [Fri, 24 Apr 2020 21:43:57 +0000 (23:43 +0200)]
Support sorting timer-list-mode by column (Bug#40854)
* lisp/emacs-lisp/timer-list.el (timer-list-mode)
(timer-list--idle-predicate, timer-list--next-predicate)
(timer-list--repeat-predicate)
(timer-list--function-predicate): Add support for sorting by column.
Stefan Kangas [Fri, 24 Apr 2020 21:42:37 +0000 (23:42 +0200)]
Base timer-list-mode on tabulated-list-mode (Bug#40854)
* lisp/emacs-lisp/timer-list.el (list-timers)
(timer-list-mode): Inherit from 'tabulated-list-mode' instead of
'special-mode' and make the necessary changes to support that.
* doc/lispref/os.texi (Timers): Update documentation.
Glenn Morris [Tue, 12 May 2020 16:34:46 +0000 (09:34 -0700)]
Suppress test failure on hydra.nixos.org
* test/lisp/net/tramp-tests.el (tramp-test28-process-file):
Attempt to suppress hydra oddity.
Paul Eggert [Tue, 12 May 2020 00:41:16 +0000 (17:41 -0700)]
Pacify GCC 10.1.0
Pacify GCC 10.1.0 so that it does not issue false alarms
when Emacs is configured with --enable-gcc-warnings.
* src/dispnew.c (clear_glyph_row):
* src/fns.c (hash_clear):
* src/keyboard.c (append_tab_bar_item):
* src/lisp.h (vcopy):
* src/xfaces.c (get_lface_attributes_no_remap)
(Finternal_copy_lisp_face, realize_default_face):
* src/xmenu.c (set_frame_menubar):
Work around -Warray-bounds false alarm in GCC 10.1.0.
* src/intervals.c (copy_properties):
Avoid -Wnull-dereference false alarm in GCC 10.1.0.
* src/lisp.h (xvector_contents_addr, xvector_contents):
New functions, useful for working around GCC bug 95072.
Paul Eggert [Tue, 12 May 2020 00:28:23 +0000 (17:28 -0700)]
Update from gnulib
This incorporates:
2020-05-11 careadlinkat: fix GCC 10 workaround
2020-05-10 careadlinkat: limit GCC workaround
2020-05-10 attribute: clarify list of attributes
2020-05-10 string: fix compilation error in C++ mode
2020-05-09 manywarnings: port to GCC 10.1
2020-05-09 careadlinkat: pacify -Wreturn-local-addr
2020-05-09 attribute: remove ATTRIBUTE_DEPRECATED
2020-05-09 attribute: Add comments
* lib/attribute.h, lib/careadlinkat.c, lib/string.in.h:
* lib/warn-on-use.h, m4/manywarnings.m4: Copy from Gnulib.
Alan Mackenzie [Mon, 11 May 2020 20:05:54 +0000 (20:05 +0000)]
Fix bug #40992 whilst still allowing breakpoint highlights in edebug
Strategy: when an instrumented function gets re-evaluated, save the former
value of its symbol's `edebug' property in the new propery `ghost-edebug'. If
this function is still being edebugged, edebug will then access its info from
this new property.
Also fix the bug whereby compile-defun'ing an instrumented function prevents
the function being re-instrumented by I (edebug-instrument-callee).
* lisp/emacs-lisp/edebug.el (edebug-get-edebug-or-ghost): New function.
(edebug-read-and-maybe-wrap-form1): save value of `edebug' property in
'ghost-edebug'.
(edebug-make-form-wrapper): Set value of `ghost-edebug' to nil.
(edebug-make-form-wrapper, edebug-find-stop-point, edebug-next-break-point)
(edebug-modify-breakpoint, edebug--overlay-breakpoints, edebug-set-breakpoint)
(edebug-unset-breakpoints, edebug-toggle-disable-breakpoint)
(edebug--backtrace-goto-source, edebug-display-freq-count)
(edebug-set-conditional-breakpoint): Use edebug-get-edebug-or-ghost to access
edebug information.
(edebug-instrument-function): Also check a function is a cons before declaring
it "already instrumented".
Stefan Monnier [Mon, 11 May 2020 13:53:37 +0000 (09:53 -0400)]
* lisp/emacs-lisp/pcase.el (pcase--fgrep): Look inside vectors
Basil L. Contovounesios [Mon, 11 May 2020 10:43:29 +0000 (11:43 +0100)]
; Fix last change to bibtex.el
* lisp/textmodes/bibtex.el
(bibtex-autokey-before-presentation-function): Bump :version tag now
that nil is no longer a valid value.
Stefan Monnier [Mon, 11 May 2020 04:30:10 +0000 (00:30 -0400)]
* lisp/textmodes/bibtex.el: Avoid `eval`
In the top-level construction of the entry-type commands,
use `defalias` instead of (eval `(defun ...)).
(bibtex-insert-kill): Strength reduce `eval` => `symbol-value`.
(bibtex-autokey-before-presentation-function): Avoid nil value.
Stefan Monnier [Mon, 11 May 2020 04:18:14 +0000 (00:18 -0400)]
* lisp/subr.el (dolist, dotimes, combine-change-calls): Cosmetic tweaks
(dolist, dotimes): Adjust comment since testing
`lexical-binding` is supposed to be reliable.
(combine-change-calls): Add debug and indent specs.
Stefan Monnier [Mon, 11 May 2020 04:15:15 +0000 (00:15 -0400)]
* lisp/emacs-lisp/syntax.el (syntax-propertize): Use run-hook-wrapped
This way we avoid making assumptions about the content of
syntax-propertize-extend-region-functions
Stefan Monnier [Mon, 11 May 2020 04:12:29 +0000 (00:12 -0400)]
* lisp/ielm.el: Handle corner case where */**/*** are not yet bound
Remote redundant :group args.
(ielm-eval-input): Use bound-and-true-p for */**/***
Dmitry Gutov [Mon, 11 May 2020 02:13:25 +0000 (05:13 +0300)]
Map "mail/compose" icon to "mail-message-new" in GTK
* lisp/term/x-win.el (x-gtk-stock-map): One more icon mapping.
Dmitry Gutov [Mon, 11 May 2020 01:34:55 +0000 (04:34 +0300)]
Use the "modern" toolbars in Gnus again
* lisp/gnus/gmm-utils.el (gmm-tool-bar-style):
Undo the breakage from commit
d88118db37dd
(https://lists.gnu.org/archive/html/emacs-devel/2020-04/msg02094.html).
Dmitry Gutov [Mon, 11 May 2020 01:25:53 +0000 (04:25 +0300)]
Use better icons on GTK in message-mode and isearch
* lisp/gnus/message.el (message-tool-bar-retro):
Use non-Gnus-specific icon.
* lisp/term/x-win.el (x-gtk-stock-map):
Use more themed icons (bug#40990).
Stefan Monnier [Sun, 10 May 2020 23:07:45 +0000 (19:07 -0400)]
* lisp/emacs-lisp/pcase.el: Don't bind unused vars in branches
(pcase--fgrep): Change calling convention to take bindings rather than
just variables.
(pcase--funcall, pcase--eval): Adjust to this new calling convention.
(pcase--expand): Use `pcase--fgrep` to bind only the vars that are used.
Stefan Monnier [Sun, 10 May 2020 20:17:01 +0000 (16:17 -0400)]
* lisp/emacs-lisp/eieio.el (eieio pcase macro): Fix last-minute typo
Tassilo Horn [Sun, 10 May 2020 18:41:42 +0000 (20:41 +0200)]
Prefer function-put over put for setting browse-url-browser-kind.
* lisp/net/browse-url.el: Prefer `function-put' over `put' for setting
`browse-url-browser-kind' symbol property.
Stefan Monnier [Sun, 10 May 2020 17:51:51 +0000 (13:51 -0400)]
* lisp/emacs-lisp/eieio.el (eieio pcase macro): Remove unused var `is`
Simen Heggestøyl [Sun, 10 May 2020 14:17:27 +0000 (16:17 +0200)]
Use lexical-binding in glasses.el and add tests
* lisp/progmodes/glasses.el: Use lexical-binding.
(glasses-separator, glasses-original-separator, glasses-face)
(glasses-separate-parentheses-p)
(glasses-separate-parentheses-exceptions)
(glasses-separate-capital-groups, glasses-uncapitalize-p)
(glasses-uncapitalize-regexp, glasses-convert-on-write-p): Remove
redundant :group args.
* test/lisp/progmodes/glasses-tests.el: New file with tests for
glasses.el.
Simen Heggestøyl [Sun, 10 May 2020 12:44:26 +0000 (14:44 +0200)]
Allow underscores in CSS variable names
* lisp/textmodes/css-mode.el (css-nmchar-re): Allow underscores in
variable names (and in identifiers in general).
* test/manual/indent/css-mode.css: Add some examples of variable names
with underscores in them.
* test/manual/indent/less-css-mode.less: Add some examples of variable
names with underscores in them.
* test/manual/indent/scss-mode.scss: Add some examples of variable
names with underscores in them.
Simen Heggestøyl [Sun, 10 May 2020 10:14:21 +0000 (12:14 +0200)]
Add containment module to CSS property list
* lisp/textmodes/css-mode.el (css-property-alist): Add new properties
from CSS Containment Module Level 1.
Simen Heggestøyl [Sun, 10 May 2020 08:00:56 +0000 (10:00 +0200)]
Add writing modes module to CSS property list
* lisp/textmodes/css-mode.el (css-property-alist): Add new properties
from the CSS Writing Modes Level 3 module.
Andrea Corallo [Sun, 10 May 2020 07:48:50 +0000 (08:48 +0100)]
* Fix `comp-deferred-compilation-black-list' effectiveness
* lisp/emacs-lisp/comp.el (native-compile-async): Fix logic for
'comp-deferred-compilation-black-list' effectiveness.
Andrea Corallo [Sun, 10 May 2020 07:58:53 +0000 (08:58 +0100)]
* src/comp.c (load_comp_unit): Style fix.
Andrea Corallo [Sat, 9 May 2020 19:04:41 +0000 (20:04 +0100)]
Merge remote-tracking branch 'savannah/master' into HEAD
Andrea Corallo [Sat, 9 May 2020 18:07:35 +0000 (19:07 +0100)]
* Fix --enable-check-lisp-object-type GNU/Linux X86_64 build
* src/comp.c (emit_mvar_val): Fix missing use of XLP macro.
(load_comp_unit): Fix missing use of NILP macro.
Simen Heggestøyl [Sat, 9 May 2020 17:58:46 +0000 (19:58 +0200)]
Use lexical-binding in help-mode.el and add tests
* lisp/help-mode.el: Use lexical-binding.
(help-mode-map, help-mode-menu, help-mode-setup)
(help-mode-finish): Make spelling of "Help mode" consistent throughout
the doc strings (also making it consistent with the spelling of "Help
mode" used in the Elisp manual).
(help-do-xref): Re-indent to make the else-branch easier to see.
* test/lisp/help-mode-tests.el: New file with tests for help-mode.el.
Glenn Morris [Sat, 9 May 2020 17:17:27 +0000 (10:17 -0700)]
* src/xdisp.c (Fwindow_text_pixel_size): Fix previous merge.
Glenn Morris [Sat, 9 May 2020 17:03:21 +0000 (10:03 -0700)]
Merge from origin/emacs-27
be0d1cac83 (origin/emacs-27) Small fix for type of 'display-fill-colu...
c5e5839776 Fix customization of 'display-fill-column-indicator-charac...
d5c184aa3e Refer to fill column indicator Info node in some places.
e13300ae50 Merge branch 'emacs-27' of git.sv.gnu.org:/srv/git/emacs i...
0bae57033f Fix GTK's Tool Bar menu radio buttons
4c98aa7ea5 Minor clarifications in NEWS
a1cbd05f38 Improve documentation of 'with-suppressed-warnings'.
4a895c1b26 Fix a typo in a comment
2caf3e997e Improve documentation of Hi Lock mode
7081c1d66f Fix typos in the Emacs user manual
0385771e2f Fix references to Speedbar in VHDL mode
a76cafea0d Fix handling of FROM = t and TO = t by 'window-text-pixel-...
# Conflicts:
# etc/NEWS
# src/xdisp.c
Pieter van Oostrum [Thu, 5 Mar 2020 19:20:04 +0000 (20:20 +0100)]
Add new filter command to Package Menu (Bug#39903)
* lisp/emacs-lisp/package.el
(package-menu-filter-marked): New filter command.
* test/lisp/emacs-lisp/package-tests.el
(package-test-list-filter-marked): New test.
(package-menu-mode-menu):
(package-menu-mode-map): Update menu to include new filter command.
* doc/emacs/package.texi (Package Menu): Document the new command.
* etc/NEWS: Announce the new command.
Paul Eggert [Sat, 9 May 2020 16:10:50 +0000 (09:10 -0700)]
Improve nonnull checking with GCC in emacs-module
* src/emacs-module.h.in (EMACS_ATTRIBUTE_NONNULL):
Also do the nonnull check with GCC. (The old code did the
check with Clang but not with GCC.)
Paul Eggert [Sat, 9 May 2020 15:47:05 +0000 (08:47 -0700)]
Update from Gnulib
This incorporates:
2020-05-09 stdio: don't redefine _GL_ATTRIBUTE_FORMAT
2020-05-09 dirent, stdlib, string: don't redefine _GL_ATTRIBUTE_PURE
2020-05-08 limits-h: define LONG_BIT correctly on Haiku/x86_64
2020-05-08 ignore-value tests: use module 'attribute'
2020-05-06 attribute: minor style fixes
* build-aux/config.sub, doc/misc/texinfo.tex, lib/attribute.h:
* lib/dirent.in.h, lib/limits.in.h, lib/stdio.in.h, lib/stdlib.in.h:
* lib/string.in.h, m4/gnulib-common.m4:
Copy from Gnulib.
Andrea Corallo [Sat, 9 May 2020 13:06:55 +0000 (14:06 +0100)]
Merge remote-tracking branch 'savannah/master' into HEAD
Andrea Corallo [Sat, 9 May 2020 12:52:30 +0000 (13:52 +0100)]
* Add 'comp-deferred-compilation-black-list' customize
* lisp/emacs-lisp/comp.el (comp-deferred-compilation-black-list):
New customize.
(native-compile-async): Make use of
'comp-deferred-compilation-black-list'.
Philipp Stephani [Sat, 9 May 2020 12:33:05 +0000 (14:33 +0200)]
Small fix for type of 'display-fill-column-indicator-character'
* lisp/cus-start.el (standard): Don't mark t as safe file-local value
for 'display-fill-column-indicator-character', as that value isn't
allowed.
Michal Nazarewicz [Mon, 4 May 2020 18:08:10 +0000 (19:08 +0100)]
cc-mode: extend regexp used by ‘c-or-c++-mode’
* lisp/progmodes/cc-mode (c-or-c++-mode--regexp): Expand the regexp to
match some more C++-only constructs and recognise a few more standard
C++ header files. Also make sure identifiers start with non-digit.
(c-or-c++-mode): Add ‘(interactive)’ declaration.
* test/lisp/progmodes/cc-mode-tests.el (c-or-c++-mode): Add test case
for the newly recognised constructs.
Michal Nazarewicz [Sun, 3 May 2020 15:32:47 +0000 (16:32 +0100)]
cc-mode: add ‘c-lineup-ternary-bodies’ (bug#41061)
Introduce ‘c-lineup-ternary-bodies’ function which, when used as
a c lineup function, aligns question mark and colon of a ternary
operator. For example:
return arg % 2 == 0 ? arg / 2
: (3 * arg + 1);
* lisp/progmodes/cc-align.el (c-lineup-ternary-bodies): New function.
* doc/misc/cc-mode.texi (Operator Line-Up Functions): Document the
new function.
* test/lisp/progmodes/cc-mode-tests.el (c-lineup-ternary-bodies): New
test case.
Eli Zaretskii [Sat, 9 May 2020 09:34:58 +0000 (12:34 +0300)]
Fix customization of 'display-fill-column-indicator-character'
* lisp/cus-start.el (display-fill-column-indicator-character): Fix
the customization form. (Bug#41145)
Philipp Stephani [Sat, 9 May 2020 08:20:47 +0000 (10:20 +0200)]
Refer to fill column indicator Info node in some places.
* src/xdisp.c (syms_of_xdisp): Add reference to manual in
documentation strings for variables related to fill column indicators.
* lisp/display-fill-column-indicator.el (display-fill-column-indicator)
(display-fill-column-indicator-mode): Add reference to manual.
Clément Pit-Claudel [Sun, 26 Apr 2020 16:41:42 +0000 (12:41 -0400)]
Only treat display strings as buttons if they have 'button' property
* lisp/button.el (push-button): Use 'posn-point' instead of
'posn-string' if the string doesn't have the 'button'
property (Bug#40859).
Martin Rudalics [Sat, 9 May 2020 07:39:40 +0000 (09:39 +0200)]
Merge branch 'emacs-27' of git.sv.gnu.org:/srv/git/emacs into emacs-27
Martin Rudalics [Sat, 9 May 2020 07:38:27 +0000 (09:38 +0200)]
Fix GTK's Tool Bar menu radio buttons
* lisp/menu-bar.el (menu-bar-showhide-tool-bar-menu): Fix typo
that makes the radio buttons pretend that the tool bar is always
shown on the left side of the frame.
Federico Tedin [Sun, 3 May 2020 13:47:56 +0000 (15:47 +0200)]
Prevent hanging in next-single-char-property-change
* src/textprop.c (Fnext_single_char_property_change): Clarify in
the doc string the behavior when LIMIT is past the end of OBJECT.
Stop the search when position gets to end of buffer, for when LIMIT
is beyond that. (Bug#40000)
Eli Zaretskii [Sat, 9 May 2020 07:23:49 +0000 (10:23 +0300)]
Minor clarifications in NEWS
* etc/NEWS: Tell how to revert to previous behaviors regarding
displaying messages when the minibuffer is active. (Bug#41087)
Philipp Stephani [Fri, 8 May 2020 20:12:07 +0000 (22:12 +0200)]
Improve documentation of 'with-suppressed-warnings'.
* lisp/emacs-lisp/byte-run.el (with-suppressed-warnings): Refer to
'byte-compile-warnings' instead of 'byte-compile-warning-types', as
only the former variable documents the available warning types.
Tassilo Horn [Fri, 8 May 2020 19:07:56 +0000 (21:07 +0200)]
Fix reading kind argument in browse-url-with-browser-kind.
* lisp/net/browse-url.el (browse-url-with-browser-kind): Convert KIND
argument queried from the user to a symbol.
Tassilo Horn [Fri, 8 May 2020 18:57:19 +0000 (20:57 +0200)]
Allow predicates for matching in browse-url-handlers.
* lisp/net/browse-url.el (browse-url-handlers): Allow predicates for
matching in browse-url-handlers. Adapt docs and customize type.
(browse-url-select-handler): Support predicates in addition to
regexes.
(browse-url--non-html-file-url-p): New defun.
(browse-url-default-handlers): Use above predicate entry instead of
two entries.
Eli Zaretskii [Fri, 8 May 2020 17:27:39 +0000 (20:27 +0300)]
Fix a typo in a comment
* lisp/display-fill-column-indicator.el: Fix a typo in a comment.
Suggested by david s <ds@fastmail.com>.
Zhu Zihao [Fri, 8 May 2020 09:01:56 +0000 (17:01 +0800)]
Make pcase pattern 'eieio' respect slot access related functions.
* lisp/emacs-lisp/eieio.el: Make pcase pattern respect slot-missing and
slot-unbound
Eli Zaretskii [Fri, 8 May 2020 14:25:45 +0000 (17:25 +0300)]
Improve documentation of Hi Lock mode
* lisp/hi-lock.el (hi-lock-mode, hi-lock-face-buffer)
(hi-lock-face-phrase-buffer, hi-lock-face-symbol-at-point):
Clarify when 'hi-lock-mode' will use Font Lock and when it will
use overlays. (Bug#41124)
Eli Zaretskii [Fri, 8 May 2020 11:21:35 +0000 (14:21 +0300)]
Fix typos in the Emacs user manual
* doc/emacs/calendar.texi (Holidays): Fix usage of non-ASCII
accents.
* doc/emacs/custom.texi (Init Rebinding): Fix a cross-reference.
* doc/emacs/dired.texi (Operating on Files): Make the
cross-reference to "VC Delete/Rename" be to a different manual in
the printed version. (Bug#41100)
Björn Holby [Mon, 4 May 2020 20:02:57 +0000 (22:02 +0200)]
Fix references to Speedbar in VHDL mode
* lisp/progmodes/vhdl-mode.el (vhdl-speedbar-initialize): Update
references to Speedbar variables. (Bug#41084)
Copyright-paperwork-exempt: yes
Eli Zaretskii [Fri, 8 May 2020 10:35:34 +0000 (13:35 +0300)]
Fix handling of FROM = t and TO = t by 'window-text-pixel-size'
* src/xdisp.c (Fwindow_text_pixel_size): Use byte position for
accessing buffer text, not character positions. (Bug#41125)
Basil L. Contovounesios [Thu, 7 May 2020 20:40:09 +0000 (21:40 +0100)]
; Update recent function declaration in dnd.el
* lisp/dnd.el (dnd-handle-one-url): Update arglist declaration for
browse-url-select-handler following recent change.
Tassilo Horn [Thu, 7 May 2020 17:38:57 +0000 (19:38 +0200)]
Allow browsing an URL explicitly with an internal or external browser.
* lisp/net/browse-url.el (browse-url-with-browser-kind): New command.
Tassilo Horn [Thu, 7 May 2020 11:02:13 +0000 (13:02 +0200)]
Categorize browse-url functions into internal and external ones.
* lisp/net/browse-url.el: Write package documentation explaining
browse-url-browser-kind symbol property. Categorize existing
browse-url functions into internal and external ones.
(browse-url--browser-kind, browse-url--browser-kind-mailto)
(browse-url--browser-kind-man, browse-url--browser-kind-browser): New
functions.
(browse-url-select-handler): Add KIND argument to restrict selection.
* lisp/dnd.el (dnd-handle-one-url): Only select browse-url handler of
kind `internal'.
* lisp/net/eww.el (eww): Add `browse-url-browser-kind' symbol property
with value `internal'.
Basil L. Contovounesios [Thu, 7 May 2020 17:36:53 +0000 (18:36 +0100)]
; Fix recent byte-compiler warning in dnd.el again
* lisp/dnd.el (dnd-handle-one-url): Declare new autoloaded function
browse-url-select-handler to silence the byte-compiler during 'make
bootstrap'.
Basil L. Contovounesios [Thu, 7 May 2020 15:59:26 +0000 (16:59 +0100)]
; Improve recent change to browse-url.el
* lisp/net/browse-url.el (browse-url-select-handler): Use lwarn with
specific warning type, as recommended in "(elisp) Warning Basics".
Noam Postavsky [Thu, 30 Apr 2020 22:55:40 +0000 (18:55 -0400)]
Don't increment array index in cl-loop twice (Bug#40727)
* lisp/emacs-lisp/cl-macs.el (cl--parse-loop-clause): Put the temp-idx
increment in cl--loop-body, leaving just the side-effect free testing
of the index for both cl--loop-body and cl--loop-conditions.
* test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs-loop-and-arrays):
Extend test to cover this case.
Noam Postavsky [Thu, 30 Apr 2020 11:54:49 +0000 (07:54 -0400)]
Revert "cl-loop: Calculate the array length just once"
It fails when using 'and' (parallel bindings) for arrays (Bug#40727).
* lisp/emacs-lisp/cl-macs.el (cl--parse-loop-clause): Revert to
recomputing array length.
* test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs-loop-and-arrays): New
test.
Tassilo Horn [Thu, 7 May 2020 11:10:44 +0000 (13:10 +0200)]
Fix browse-url (remove debugging leftover).
* lisp/net/browse-url.el (browse-url): Fix "No suitable browser for
URL" always popping up.
Andrea Corallo [Thu, 7 May 2020 09:24:30 +0000 (10:24 +0100)]
Merge remote-tracking branch 'savannah/master' into HEAD
Andrea Corallo [Thu, 7 May 2020 07:10:50 +0000 (08:10 +0100)]
* Fix bug#41112
* lisp/emacs-lisp/comp.el (comp-jump-table-optimizable): New
function.
(comp-emit-switch): Make use of 'comp-jump-table-optimizable'.
Michael Albinus [Thu, 7 May 2020 08:27:14 +0000 (10:27 +0200)]
Handle signals in Tramp's process-file
* lisp/net/tramp-adb.el (tramp-adb-handle-process-file):
* lisp/net/tramp-sh.el (tramp-sh-handle-process-file): Handle signals.
* test/lisp/net/tramp-tests.el (tramp-test28-process-file): Adapt test.
Tassilo Horn [Thu, 7 May 2020 07:53:54 +0000 (09:53 +0200)]
Refactor browse-url handler selection into separate function.
* lisp/net/browse-url.el (browse-url-select-handler): New function.
(browse-url): Use it.
* lisp/dnd.el (dnd-handle-one-url): Use it.
Basil L. Contovounesios [Thu, 7 May 2020 00:52:50 +0000 (01:52 +0100)]
; Fix recent byte-compiler warnings in dnd.el
* lisp/dnd.el (dnd-handle-one-url): Don't require browse-url twice
in the same function. Declare non-autoloaded browse-url-handlers to
silence byte-compiler.
Tassilo Horn [Wed, 6 May 2020 20:23:03 +0000 (22:23 +0200)]
Restore HTML rendering behavior of browse-url-of-buffer/file.
* lisp/net/browse-url.el (browse-url-default-handlers): Add a browser
handler for HTML page file:// URLs before the generic file:// handler.
(browse-url--browser): New defun.
Andrea Corallo [Wed, 6 May 2020 19:11:59 +0000 (20:11 +0100)]
Merge remote-tracking branch 'savannah/master' into HEAD
Andrea Corallo [Wed, 6 May 2020 17:55:33 +0000 (18:55 +0100)]
* Add native compilation unit black list
* lisp/emacs-lisp/comp.el (comp-bootstrap-black-list): New customize.
(batch-native-compile): Rework to make use of
'comp-bootstrap-black-list'.
(batch-byte-native-compile-for-bootstrap): Add assertion to make
logic assumption explicit.